/**


在web3场景下：

我想实现一个工具，输入一个合约地址(ca)，查询前100持有人的持仓情况，然后点击持有人地址，查询该持有人持仓情况。

页面布局：常规的查询页面，查询按钮，查询结果页面，查询结果页面中包含持有人列表，持有人列表中包含持有人地址，持有人地址中包含持有人持仓情况。

然后表格展示的持有人地址，点击持有人地址，查询该持有人持仓情况。

左边表格展示持有人地址，右边表格展示该持有人持仓情况。


以下是用到的接口

// 测试合约地址
const contract_address = "FoBeu5sdn91be9rCCf9uHnfHoGaZEqZnK6FGoNLxbonk"
// 测试apiToken
const apiToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjcmVhdGVkQXQiOjE3NTY4MzIzMDc5MjEsImVtYWlsIjoiOTI5MTQ0Mzg3QHFxLmNvbSIsImFjdGlvbiI6InRva2VuLWFwaSIsImFwaVZlcnNpb24iOiJ2MiIsImlhdCI6MTc1NjgzMjMwN30.SMO_QIYPvGgBFynqu2mynnU6BFfZLhs1x_ZNYSREg7c"



查询合约持有人接口：
url: https://pro-api.solscan.io/v2.0/token/holders
params: {
    address: 输入的合约地址,
    page: 1,
    page_size: 100 // 查询前100人
}
headers: {
    token: apiToken
}


response:

{
  "success": true,
  "data": {
    "total": 262,
    "items": [
      {
        "address": "HGnPjqjPeR7fuhHJWRS1aKJjKwjK6v8Ex7RXzbrQUz9n",
        "amount": 68049599467290,
        "decimals": 6,
        "owner": "GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL",
        "rank": 1,
        "value": 63915.59643311661,
        "percentage": 6.804959946729034
      }
    ]
  }
}

根据持有人地址查询持有人持仓接口：

url: https://pro-api.solscan.io/v2.0/account/portfolio
params: {
    address: 输入的持有人地址,
    exclude_low_score_tokens: true, // Excludes tokens with low reputation scores
}
headers: {
    token: apiToken
}

response:   

{"success":true,"data":{"total_value":3837.291257776786,"native_balance":{"amount":3977479012,"balance":3.977479012,"token_price":218.04669316709916,"token_decimals":9,"token_name":"SOL","token_symbol":"SOL","token_icon":"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png","value":867.2761457081407},"tokens":[{"token_address":"FwZxfG6WHcAAJD5ShYZZQNQCNgtrw2oniQhoDXR5pump","amount":768122216077,"balance":768122.216077,"token_price":0.0023361398438571587,"token_decimals":6,"token_name":"in real life coin","token_symbol":"irlcoin","token_icon":"https://ipfs.io/ipfs/bafybeicti2pq3wqqvrtjdwwmvzlsiwxwm3mv7dytscsm3ansm2sght64nq","value":1794.4409139293375},{"token_address":"CrKGuUnfpgPLStPsH1fVr5Ka1XzHxH5hsiKs2ejkpump","amount":7821912390842,"balance":7821912.390842,"token_price":0.00008027300244817271,"token_decimals":6,"token_name":"young nigga","token_symbol":"yn","token_icon":"https://ipfs.io/ipfs/bafybeibhdxdlwuiz6gjgmavycqkpdt4lkimoc3vv6oxbfgffdq62r5vzte","value":627.8883924994523},{"token_address":"BaAnx7fLcZEZ525jXuPY1vJGnAaBxcdgAUaN67jKra1","amount":9112707424395,"balance":9112707.424395,"token_price":0.000039996572332473286,"token_decimals":6,"token_name":"Bellscoin","token_symbol":"BEL","token_icon":"https://cf-ipfs.com/ipfs/QmRsCWnRt8VTrn6JzmyNWukpNUfsZadx2A3qLVZwEECQwu","value":364.47706164448095},{"token_address":"C33Uvggg36n21hoxE4oHDXbCj4vZAostY1VrtpU1pump","amount":3699897993394,"balance":3699897.993394,"token_price":0.00004951724191382715,"token_decimals":6,"token_name":"the hidden ticker","token_symbol":"4","token_icon":"https://ipfs.io/ipfs/bafybeihsewqbvjy7ej5urua26zbr5eb5n2o2fvwcco4j7z6eyxvk2cj6di","value":183.20874399537436}]},"metadata":{}}



*/


